layui.define(['table', 'form'], function (exports) {
    var $ = layui.$
        , form = layui.form;

    form.verify({
        names: function (value, item) { //value：表单的值、item：表单的DOM对象
            if (!(/^\S{6,127}$/.test(value))) {
                return '名称为6到128位';
            }
            if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
                return '名称不能有特殊字符';
            }
            if (/(^\_)|(\__)|(\_+$)/.test(value)) {
                return '名称首尾不能出现下划线\'_\'';
            }
            if (/^\d+\d+\d$/.test(value)) {
                return '名称不能全为数字';
            }
        },
        alias: function (value, item) {
            if (!(/^\S{6,127}$/.test(value))) {
                return '别名为6到128位';
            }
            if (!new RegExp("^[a-zA-Z0-9_\u4e00-\u9fa5\\s·]+$").test(value)) {
                return '别名不能有特殊字符';
            }
            if (/(^\_)|(\__)|(\_+$)/.test(value)) {
                return '别名首尾不能出现下划线\'_\'';
            }
            if (/^\d+\d+\d$/.test(value)) {
                return '别名不能全为数字';
            }
        },
        defaultUrl: function (value, item) {
            if (/^[\u4e00-\u9fa5]$/.test(value)) {
                return '地址不能为中文';
            }
        },
        sort: function (value, item) {
            if (!(/^[0-9]*$/.test(value))) {
                return '排序只能为数字';
            }
        },
        customTableName: function (value, item) {
            if (value.length > 20) {
                return '表名最多 20 个字符';
            }
        },
        fieldName: function (value, item) {
            if (!(/^[A-Za-z]{1}([a-zA-Z0-9_]+)?$/gi.test(value))) {
                return '只能为字母开头,允许字母、数字和下划线\'';
            }
            //判断字段是否存在
            if (isAdd == 0 && editFieldName.toLowerCase() == value.toLowerCase()) {

            } else {
                var fieldsArray = parent.layui.getAllFields();

                if (undefined != fieldsArray) {
                    for (var i = 0; i < fieldsArray.length; i++) {
                        var field = fieldsArray[i];
                        var fieldName = field.fieldName.toLowerCase();

                        value = value.toLowerCase();
                        //判断选择控件。（用户，组织，岗位，角色)
                        var rtn = isExecutorSelector(field.controlType);
                        if (rtn) {
                            var fieldId = fieldName + "id";
                            if (fieldName == value || fieldId == value) {
                                return '字段已存在';
                            }
                        } else {
                            if (fieldName == value) {
                                return '字段已存在';
                            }
                        }
                    }
                }
            }
        },

        numberThousands: function (value, item) {
            if(value !== ""){
                if (!(/^\d{1,}(,\d{1,})*$/.test(value))) {
                    return '千分位格式有误';
                }
            }
        },
        numberMoney: function (value, item) {
            if(value !== ""){
                if (!(/^(\$|￥)?\d{1,}(,\d{1,})*(.\d{1,2})?$/.test(value))) {
                    return '货币格式有误';
                }
            }
        },
        customFloat: function (value, item) {
            if (value !== "") {
                var customInt = $(item).attr('customInt');
                /*if (!((new RegExp("^\\d{1," + customInt + "}.\\d*$")).test(value))) {
                    return '整数位数不能超过' + customInt + '位';
                }*/
                var customDecimal = $(item).attr('customDecimal');
                /*if (!((new RegExp("^\\d*.\\d{1," + customDecimal + "}$")).test(value))) {
                    return '小数位数不能超过' + customDecimal + '位';
                }*/
                if (!((new RegExp("^[1-9]{1}\\d{0," + (customInt-1) + "}(\\.\\d{1," + customDecimal + "})?$")).test(value))) {
                    return '整数位数不能超过' + customInt + '位,小数位数不能超过' + customDecimal + '位';
                }
            }
        },
        startLetter: function (value, item) {
            if (!(/^[A-Za-z]{1}([a-zA-Z0-9_]+)?$/gi.test(value))) {
                return '表名只能为字母开头,允许字母、数字和下划线\'';
            }
        }
    })
});